package com.rayframework.beans.factory.annotation;

import java.lang.annotation.*;

/**
 * 选择正确的依赖项
 * 当系统中存在同一类型的多个 RayBean 时， 在进行依赖注入的时候就不知道该选择哪一个实现类进行注入
 * 此时可以使用 {@link RayQualifier @RayQualifier} 注解来微调，帮助  {@link RayAutowired @RayAutowired} 选择正确的依赖项
 *
 * @author LiaoYuXing-Ray
 * @version 1.0
 * @createDate 2023/9/19 14:21
 **/
// 指定该注解可以应用于以下元素类型：字段（Field）、方法（Method）、参数（Parameter）、类（Type）和注解类型（Annotation Type）
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME) // 指定该注解在运行时仍然有效
@Inherited
@Documented // 表示该注解将被包含在JavaDoc文档中
public @interface RayQualifier {
    /**
     * 注入依赖项的别名 2023/9/20 16:20
     */
    String value() default "";
}
